package org.example.hrpc.serializer;

import org.example.hrpc.common.spi.annodation.SPI;

/**
 * 序列化器
 */
@SPI("hessian")
public interface Serializer {

    /**
     * 编组请求
     *
     * @param object 请求信息
     * @return 请求字节数组
     * @throws Exception
     */
    byte[] serialize(Object object) throws Exception;

    /**
     * 解组
     *
     * @param data 需要被解码的参数
     * @throws Exception
     */
    <T> T deserialize(byte[] data, Class<T> cls) throws Exception;
}
